perm filename SEE.SAI[4,ALS] blob
sn#054422 filedate 1973-07-19 generic text, type T, neo UTF8
00010 BEGIN "SEE"
00020 DEFINE ⊂="COMMENT"; ⊂ 7,2,73;
00030
00040 ⊂ This program analyses RES.DAT and USE.DAT tables
00050 and reports on their contents;
00060
00070 DEFINE TABSIZ="256",TABNUM="16";
00080 DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00090 REQUIRE "BLOCKS.HDR" SOURCE_FILE;
00100 INTEGER CHAN1,CHAN2,EOF,MAX,ZEROC;
00110 INTEGER ARRAY RES,LRN[0:TABSIZ];
00120 INTEGER X1,X2,X3,X4,S1,S2,S3,S4,S1F,S2F,S3F,S4F,I,J,K,
00130 S1T,S2T,S3T,S4T,OLD,NEW,SUM,F1,F2,F3,F4,T1,T2,T3,T4;
00140 STRING READ1,READ2;
00150
00160 HEADIN;
00170 CHAN1←1; CHAN2←2;
00180 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00190 LOOKUP(CHAN1,"LRN.DAT",0);
00200 CLOSE(CHAN2); OPEN(CHAN2,"DSK",'10,10,0,0,0,EOF);
00210 LOOKUP(CHAN2,"RES.DAT",0);
00220
00230 OUTSTR(TB&"SIGNATURE TABLE SUMMARY as of "&DATIME&CRLF&LF);
00240
00250
00260 OUTSTR(CRLF&"The following tables exist"&CRLF);
00270 OUTSTR("Name"&TB&"Parent"&TB&"Out1 Lev1 Out2 Lev2 "&
00280 "Out3 Lev3 Out4 Lev4 "&
00290 "IN1 IN2 IN3 IN4"&CRLF);
00300 SETFORMAT(3,0);
00310 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00320 IF NAMES[I]=0 THEN DONE;
00330 J←(IN1[I] LAND '77);K←(IN2[I] LAND '77);
00340 IF (IN3[I]=0) THEN READ1←" "
00350 ELSE READ1←CVXSTR(INNAM[IN3[I] LAND '77])[1 TO 5];
00360 IF (IN4[I]=0) THEN READ2←" " ELSE
00370 READ2←CVXSTR(INNAM[IN4[I] LAND '77])[1 TO 5];
00380 OUTSTR(CVXSTR(NAMES[I])&TB&CVXSTR(PARENN[I])&TB&
00390 CVXSTR(OUT1[I])&CVS(LDB(POINT(9,LEVEL[I],8)))&" "&
00400 CVXSTR(OUT2[I])&CVS(LDB(POINT(9,LEVEL[I],17)))&" ");
00410 IF OUT3[I]=0 THEN OUTSTR(" ") ELSE
00420 OUTSTR(CVXSTR(OUT3[I])&CVS(LDB(POINT(9,LEVEL[I],26)))&" ");
00430 IF OUT4[I]=0 THEN OUTSTR(" ") ELSE
00440 OUTSTR(CVXSTR(OUT4[I])&CVS(LDB(POINT(9,LEVEL[I],35)))&" ");
00450 OUTSTR(CVXSTR(INNAM[J])[1 TO 5]&CVXSTR(INNAM[K])[1 TO 5]
00460 &READ1&READ2&CRLF); END; OUTSTR(LF&"Table ststistics are-"&CRLF&LF);
00470
00480
00490 OUTSTR(CRLF&"Name"&TB&"Out1 Find Tare Total Out2 "&
00500 "Find Tare Total Out3 Find Tare Total Out4 "&
00510 "Find Tare Total Max."&TB&"Zeros"&CRLF&LF);
00520
00530 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00540 IF NAMES[I]=0 THEN DONE;
00550 ARRYIN(CHAN1,LRN[0],TABSIZ);
00560 ARRYIN(CHAN2,RES[0],TABSIZ);
00570 S1←S2←S3←S4←S1F←S2F←0; S3F←S4F←S1T←S2T←S3T←S4T←0;
00580 X1←X2←X3←X4←MAX←ZEROC←0;
00590 FOR J←0 STEP 1 UNTIL 255 DO BEGIN
00600 OLD←LDB(POINT(9,RES[J],8)); NEW←LDB(POINT(9,LRN[J],8));
00610 X1←(OLD LSH 5)+NEW; S1←S1+X1;
00620 OLD←LDB(POINT(9,RES[J],17)); NEW←LDB(POINT(9,LRN[J],17));
00630 X2←(OLD LSH 5)+NEW;S2←S2+X2;
00640 OLD←LDB(POINT(9,RES[J],26)); NEW←LDB(POINT(9,LRN[J],26));
00650 X3←(OLD LSH 5)+NEW; S3←S3+X3;
00660 OLD←LDB(POINT(9,RES[J],35)); NEW←LDB(POINT(9,LRN[J],35));
00670 X4←(OLD LSH 5)+NEW; S4←S4+X4;
00680
00690
00700 K←X1+X2+X3+X4;IF K=0 THEN ZEROC←ZEROC+1;IF K>MAX THEN MAX←K;
00710
00720 IF X1>X2 THEN BEGIN "X1X2"
00730 IF X1>X3 THEN IF X1>X4 THEN BEGIN
00740 S1F←S1F+X1; S1T←S1T+X2+X3+X4; END ELSE BEGIN
00750 S4F←S4F+X4; S4T←S4T+X1+X3+X4;END;
00760 IF X3≥X1 THEN IF X3>X4 THEN BEGIN
00770 S3F←S3F+X3; S3T←S3T+S1+S2+S4; END ELSE BEGIN
00780 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X1X2";
00790 IF X2≥X1 THEN BEGIN "X2X1"
00800 IF X2>X3 THEN IF X2>X4 THEN BEGIN
00810 S2F←S2F+X2; S2T←S2T+X1+X3+X4; END ELSE BEGIN
00820 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END;
00830 IF X3≥X2 THEN IF X3>X4 THEN BEGIN
00840 S3F←S3F+X3; S3T←S3T+X1+X2+X4; END ELSE BEGIN
00850 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X2X1";
00860 END;
00870 F1←(S1F*100)/S1; F2←(S2F*100)/S2; F3←(S3F*100)/S3; F4←(S4F*100)/S4;
00880 T1←(S1T*100)/(S1F+S1T); T2←(S2T*100)/(S2F+S2T);
00890 T3←(S3T*100)/(S3F+S3T); T4←(S4T*100)/(S4F+S4T);
00900
00910 SETFORMAT(2,0);
00920 OUTSTR(CVXSTR(NAMES[I])&TB&
00930 CVXSTR(OUT1[I])&TB&CVS(F1)&" "&CVS(T1));
00940 SETFORMAT(7,0); OUTSTR(CVS(S1)&TB); SETFORMAT(2,0);
00950 OUTSTR(CVXSTR(OUT2[I])&TB&CVS(F2)&" "&CVS(T2));
00960 SETFORMAT(7,0); OUTSTR(CVS(S2)&TB); SETFORMAT(2,0);
00970 IF OUT3[I]=0 THEN OUTSTR(TB&" "&TB) ELSE BEGIN
00980 OUTSTR(CVXSTR(OUT3[I])&TB&CVS(F3)&" "&CVS(T3));
00990 SETFORMAT(7,0); OUTSTR(CVS(S3)&TB); SETFORMAT(2,0); END;
01000 IF OUT4[I]=0 THEN OUTSTR(TB&" "&TB) ELSE BEGIN
01010 OUTSTR(CVXSTR(OUT4[I])&TB&CVS(F4)&" "&CVS(T4));
01020 SETFORMAT(7,0); OUTSTR(CVS(S4)&TB); END;
01030 SETFORMAT(4,0);
01040 OUTSTR(CVS(MAX)&TB&CVS(ZEROC)&CRLF);
01050 END;
01060 CLOSE(CHAN1); CLOSE(CHAN2);
01070
01080 END "SEE";